# encoding:utf-8
'''
@author : xaing
@time : 2019/4/5 22:38
@地址 : 广州
@作用 : js相关
@结果 :
'''

import os
from version1 import common
from version1 import fileUtils
# 执行js用
import execjs

def jsExecute(jsPath, functionName, *parm):
    '''
    执行JS
    :param jsPath: JS文件的路径
    :param functionName: 函数名
    :param parm: 参数传入是 parm[0], parm[1] 这种形式
    :return: 执行js得到的结果
    '''
    if common.checkNull(jsPath):
        raise Exception("js文件路径不能为空")
    if common.checkNull(functionName):
        raise Exception("函数名不能为空")

    if os.path.exists(jsPath):
        if fileUtils.isFile(jsPath):
            # 调用js
            f = None
            try:
                f = open("decryptionImg.js", 'r', encoding='UTF-8')
                line = f.readline()
                js = ''
                while line:
                    js = js + line
                    line = f.readline()

                # 编译并加载js文件内容
                cxt = execjs.compile(js)
                # 调用JS执行，其中 functionName 是函数名，name是参数
                # textCxt = cxt.call(functionName, parm[0], parm[1])
                result = cxt.call(functionName, parm)
                return result

            finally:
                if f is not None:
                    f.close()

        else:
            raise Exception("js文件不能是目录")

    else:
        raise Exception("js文件不存在")